//TAB
;(function () {
    $.extend($.fn,{
        tab:tab
    });
    function tab(options){
        var opts= $.extend({
            eventType:'click',
            tabs:'.tabs',
            tab:'.tab',
            tabCurr:'tabCurr',
            cons:'.tabCons',
            con:'.tabCon',
            conCurr:'tabConCurr',
            callback: $.noop
        },options);

        this.each(function(){
            var $tab=$(this);
            var $tabs=$tab.children(opts.tabs).find(opts.tab);
            var $cons=$tab.children(opts.cons).children(opts.con);
            $tabs.each(function(i){
                $(this).data('idx',i);
            });
            $tabs.on(opts.eventType,function(){
                var $this=$(this),idx=$this.data('idx');
                $this.addClass(opts.tabCurr).siblings().removeClass(opts.tabCurr);
                $cons.eq(idx).addClass(opts.conCurr).siblings().removeClass(opts.conCurr);
                if(this.tagName.toLocaleLowerCase() == 'a'){
                    return false;
                }
                opts.callback($(this),$cons.eq(idx),idx,$tab);

            });
        });
        return this;
    };
})();

//slide
(function(){
    $.extend($.fn,{
        slide:slide
    });

    function slide(options){
        var opts= $.extend({
            list:null,//幻灯片列表
            left:null,//使用左箭头动画的按钮
            right:null,//使用右箭头动画的按钮
            btns:null,//使用索引值动画的按钮
            dir:'X',//方向：X：横向/Y：纵向
            hl:'curr',//当前页高亮类名
            type:'click',//事件类型
            auto:true,//是否自动播放
            delay:3000,//自动播放时间间隔
            speed:'slow'//动画速度
        },options);

        return this.each(function(){
            var $slide=$(this),$list=$(opts.list,$slide),$lis=$('li',$list),$btns=$(opts.btns,$slide).children(),$left,$right;
            var length=$lis.length,width=$slide.width(),height=$slide.height(),timer,idx=0;

            if(length<2)return;
            $list.width(width*length);
            $lis.width(width);

            //按钮动画
            $btns.each(function(i){
                $(this)[opts.type](function(){
                    idx=i;
                    play();
                });
            });

            //箭头动画
            if(opts.left&&opts.right){
                $left=$(opts.left,$slide),$right=$(opts.right,$slide);
                $left.on('click', function () {
                    idx--;
                    if(idx<0)idx=length-1;
                    play(idx);
                });
                $right.on('click', function () {
                    idx++;
                    idx%=length;
                    if(idx<0)idx=length-1;
                    play();
                });
            }

            if(opts.auto===true){
                idx=1;
                auto();
                $slide.mouseenter(function(){
                    clearTimeout(timer);
                }).mouseleave(auto);
            }
            function auto(){
                clearTimeout(timer);
                play();
                timer=setTimeout(function(){
                    idx++;
                    auto();
                },opts.delay);
            }
            function play(){
                idx%=length;
                $list.stop();
                //console.log('play idx:',i);
                if(opts.dir=='Y'){
                    $list.animate({'margin-top':-idx*height},opts.speed);
                }else{
                    $list.animate({'margin-left':-idx*width},opts.speed);
                }
                $btns.eq(idx).addClass(opts.hl).siblings().removeClass(opts.hl);
            }
        });
    };
})();

//楼层左侧TopN书籍Toggle
;(function () {
    $.extend($.fn,{
        sideBookListToggle:sideBookListToggle
    });
    function sideBookListToggle(){
        return this.each(function(){
            $(this).on({
                mouseenter: function () {
                    $(this).addClass('hl').siblings().removeClass('hl');
                }
            },'dl');
        });
    }
})();

//评论图片切换
;(function () {
    $.extend($.fn,{
        commentListImgToggle:commentListImgToggle
    });
    function commentListImgToggle(){
        return this.each(function(){
            var idx=-1,ing=false;
            var $list=$(this),$imgs=$list.find('.big>li');
            var show= function ($img,$thumb,i) {
                ing=true;
                $thumb.addClass('curr').siblings().removeClass('curr');
                $img.show(200,function () {
                    idx=i;
                    ing=false;
                });
            };

            var toggle= function ($img,$thumb,i) {
                if(ing)return;
                $thumb.addClass('curr').siblings().removeClass('curr');
                ing=true;
                $img.siblings().hide();
                $img.toggle(0,function () {
                    idx=i;
                    ing=false;
                });
            };

            $list.find('.thumb').on('click','li', function () {
                var $thumb=$(this),i=$thumb.index(),isCurr=$thumb.hasClass('curr'),$img=$imgs.eq(i);
                //console.log(i,$imgs.eq(i));
                if(isCurr){//当前已经显示
                    ing=true;
                    $img.hide(0,function () {
                        $thumb.removeClass('curr');
                        idx=-1;
                        ing=false;
                    });
                }else{
                    if(~idx){//已经有显示的图片
                        toggle($img,$thumb,i);
                    }else{
                        show($img,$thumb,i);
                    }
                }
            });

            $list.find('.big').on('click','li', function () {
                console.log($(this).index())
                $list.find('.thumb').find('li').eq($(this).index()).trigger('click');
            });
        });

    }
})();

//popup
;(function () {
    $.extend($.fn,{
        popup:popup
    });
    function popup(){
        var $body=$('body'),w=$body.width(),h=$body.height();
        return this.each(function () {
            var $pop=$(this);
            var $mask=$('<div class="popupMask"></div>');
            $mask.width(w).height(h).appendTo($body);
            $pop.show();
            $pop.on('click','.close',function () {
                $pop.hide();
                $mask.remove();
            });
        });
    }
})();


/*横向滚动*/
;(function(){
    $.extend($.fn,{
        scroll:scroll
    });
    function scroll(opts){
        return this.each(function(){

            var $listBox=$(this);
            var $list=$listBox.find('.list');
            var $lis=$list.find('li');
            var $prev=$listBox.find('.prev');
            var $next=$listBox.find('.next');

            var length=$lis.length;
            var step=6;
            var w=135*6;
            var count=Math.ceil(length/step);
            var idx=0;

            $prev.on('click',function(){
                if(idx<=0)return;
                idx--;
                $list.animate({
                    scrollLeft:w*idx
                });
            });

            $next.on('click',function(){
                if(idx>=count-1)return;
                idx++;
                $list.animate({
                    scrollLeft:w*idx
                });
            });

        });
    }
})();

//page
;(function(){
    $.extend($.fn,{
        page:page
    });

    function page(opts){

        return this.each(function(){
            var $this=$(this);
            var idx= 1;
            var num=opts.num,callback=opts.callback;

            $this.on('click.page','a', function () {
                var $this=$(this);
                if($this.hasClass('disabled'))return false;
                if($this.hasClass('prev')){
                    prev($this);
                }else if($this.hasClass('next')){
                    next($this);
                }else{
                    page($this);
                }
                return false;
            });

            draw(num);

            function draw(newNum){
                var html='<div>';
                idx=newNum<num?1:idx;
                num=newNum;
                html='<a class="prev '+(idx==1?'disabled':'')+'">上一页</a>';
                for(var i=1;i<=num;i++){
                    html+='<a'+(idx==i?' class="curr"':'')+'>'+i+'</a>';
                }
                html+='<a class="next '+(idx==num?'disabled':'')+'">下一页</a>';
                html+='</div>';
                $this.html(html);
            }

            function update(currIdx){
                idx=currIdx;
                callback(currIdx, function (newNum) {
                    draw(newNum);
                });
            }

            function page($page){
                var currIdx=$page.text();
                if(idx==currIdx)return;
                update(currIdx);
            }


            function prev(){
                if(idx<2)return;
                idx--;
                update(idx);
            }

            function next(){
                if(idx>=num)return;
                idx++;
                update(idx);
            }
        });
    }
})();